<?php

/**
 * Cliente Enviar y Recibir Paquetes
 * @Envia_Recibe
 * GenProg Lenguaje de Modelos
 *
 *
 * @author      Carlos Peña <crash.madover@gmail.com>
 * @package     application.model.sis.nomina
 * @copyright   (c) 2013, GenProg
 * @version     v 1.0
 */
class Envia_Recibe {
    // -------------------------------------------------------------------------------------

    /**
     * Prefijo de los Campos
     *
     * @access    public
     * @var       string
     */
    public $prefijo = 'CER'; // Cliente Envia Recibe
    // -------------------------------------------------------------------------------------

    /**
     * Nombre de la Tabla en la Base de Datos
     *
     * @access    public
     * @var       string
     */
    public $tabla = 'K_REnviaRecibe';

    // -------------------------------------------------------------------------------------

    /**
     * Sexo
     * 
     * @access public
     * @var array()
     */
    public $sexo = array('0' => 'Masculino', '1' => 'Femenino');

    // -------------------------------------------------------------------------------------

    /**
     * Nacionalidad
     * 
     * @access public
     * @var array()
     */
    public $naci = array('V' => 'Venezolano', 'E' => 'Extranjero', 'DC' => 'Documentos Especiales', 'J' => 'Juridico', 'G' => 'Gubernamental');

    // -------------------------------------------------------------------------------------

    /**
     * Campos del Sistema y Base de datos
     *
     * @access    public
     * @var       array()
     */
    public $struc = array(//
        'cmp' => array(//
            'oid' => array('clave' => 'PRIMARY', 'tipo' => 'INT', 'longitud' => '11', 'Incremento' => '1', 'comentario' => 'Identificador', 'visible' => 'oculto'), //
            'oidFKR' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Quien Recibe', 'visible' => 'oculto',
                'clave_foranea' => array('responsable', 'oid')
            ), //
            'oidFKE' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Quien Envia', 'visible' => 'oculto',
                'clave_foranea' => array('responsable', 'oid')
            ), //
            'oidFKP' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Paquete', 'visible' => 'oculto',
                'clave_foranea' => array('paquete', 'oid')
            ),
            'forma_pago' => array('tipo' => 'VARCHAR', 'comentario' => 'Forma de Pago (Contado...)', 'longitud' => '64'), //
            'tipo' => array('clave' => 'KEY', 'tipo' => 'INT', 'comentario' => 'Tipo de Pago (TD,TC...)', 'longitud' => '64'), //
        ),
        'join' => array(
            'tarjeta' => array('oidFKR' => 'oid', 'relacion' => 'cero-a-uno', 'dtd' => 'Tarjeta'),
            'responsable' => array('oid' => 'oidFKE', 'relacion' => 'uno-a-uno', 'dtd' => 'Responsable'),
            'paquete' => array('oid' => 'oidFKP', 'relacion' => 'uno-a-uno', 'dtd' => 'Paquete')
        )
    );

    // -------------------------------------------------------------------------------------

    /**
     * Descripcion del modelo
     * 
     * @access    public
     * @var       string
     */
    public $dtd = 'Lista de Paquetes';




    // -------------------------------------------------------------------------------------

    /**
     * Permite crear botones asignados a la Interfaz
     * C = Crear, R = Leer (Buscar), U = Actualizar (Modificar), D = Eliminar
     *
     * @access public
     * @var string
     */
    public $botones = 'CRUD';

    /**
     * 
     * @param Orm 
     * @return type
     */
    function GUI(Orm $Orm = null) {
        $estado = array();
        if (isset($Orm)) {
            $rs = $Orm->GPQL('Estado')->Asignar_Columnas('Estado.oid AS oid,Estado.nomb AS nomb')->Listar_Todo()->Ejecutar();
            foreach ($rs['rs'] as $sC => $sV) {
                $estado[$sV->oid] = $sV->nomb;
            }
        }
        $mun_parr = array('' => 'Seleccione');

        $frm[1] = array('etiqueta' => 'Tipo de Cuenta', 'id' => 'naci_r', 'tipo' => 'combo', 'clase' => 'icon1', 'requerido' => 1, 'elementos' => $this->naci, 'estilo' => 'width:210px');
        $frm[2] = array('etiqueta' => 'CI/RIF', 'id' => 'ced_rif_r', 'tipo' => 'numero', 'clase' => 'icon1', 'requerido' => 1, 'onclick' => 'Posibles_Envios()', 'onblur' => 'Consultar(1)', 'estilo' => 'width:300px');
        $frm[3] = array('etiqueta' => 'Nombre Compleo o Razón Social', 'id' => 'nombre_razon_r', 'tipo' => 'textarea', 'estilo' => 'width:510px');

        // ----------------------------------------------------------------------------

        $frm[4] = array('etiqueta' => 'Ciudad', 'id' => 'ciudad_r', 'tipo' => 'texto', 'completar' => 'CCiudad', 'onblur' => 'SCiudad(1)', 'requerido' => 1, 'estilo' => 'width:210px');
        $frm[5] = array('etiqueta' => 'Estado', 'id' => 'estado_r', 'tipo' => 'combo', 'elementos' => $estado, 'dependiente' => array("municipio_r", "CConsultar/Municipio"), 'requerido' => 1, 'estilo' => 'width:300px');
        $frm[6] = array('etiqueta' => 'Municipio', 'id' => 'municipio_r', 'tipo' => 'combo', 'elementos' => $mun_parr, 'requerido' => 1, 'dependiente' => array("parroquia_r", "CConsultar/Parroquia"), 'estilo' => 'width:210px');
        $frm[7] = array('etiqueta' => 'Parroquia', 'id' => 'parroquia_r', 'tipo' => 'combo', 'elementos' => $mun_parr, 'requerido' => 1, 'estilo' => 'width:300px');
        $frm[8] = array('etiqueta' => 'Código Postal', 'id' => 'zona_postal_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[9] = array('etiqueta' => 'Sector', 'id' => 'sector_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[10] = array('etiqueta' => 'Via', 'id' => 'via_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[11] = array('etiqueta' => 'Edificio / Casa', 'id' => 'edificio_casa_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[12] = array('etiqueta' => 'Piso / Oficina', 'id' => 'piso_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[13] = array('etiqueta' => 'Punto de Referencia', 'id' => 'punto_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[14] = array('etiqueta' => 'Teléfono de Casa', 'id' => 'telefono_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[15] = array('etiqueta' => 'Celular', 'id' => 'celular_r', 'tipo' => 'texto', 'clase' => 'icon1');
        $frm[16] = array('etiqueta' => 'Correo Electronico', 'id' => 'correo_r', 'tipo' => 'texto', 'clase' => 'icon1');
        


        $obj['php'] = array('campos' => $frm, 'titulo' => 'Datos del que recibe ');
        $obj['json'] = json_encode($obj['php']);
        return (object) $obj;
    }

    /**
     * Envios Diarios
     */
    function GGrid(Orm $orm = null, $arr = array()) {
        $i = 0;
        $oCab = array();
        $oFil = array();
        $oCab[1] = array("titulo" => "oid_paquete", "atributos" => "width: 60px", "oculto" => 1);
        $oCab[2] = array("titulo" => "oid_envia", "atributos" => "width: 60px", "oculto" => 1);
        $oCab[3] = array("titulo" => "oid_recibe", "atributos" => "width: 60px", "oculto" => 1);
        $oCab[4] = array("titulo" => "oid_oficina", "atributos" => "width: 60px", "oculto" => 1);
        $oCab[5] = array("titulo" => "Guia", "atributos" => "width:100px", "buscar" => 1);
        $oCab[6] = array("titulo" => "Envia", "atributos" => "width:160px", "buscar" => 1);
        $oCab[7] = array("titulo" => "Recibe", "atributos" => "width:160px", "buscar" => 1);
        $oCab[8] = array("titulo" => "Oficina", "atributos" => "width:160px", "oculto" => 1);
        $oCab[9] = array("titulo" => "Ciudad Origen", "atributos" => "width:160px", "buscar" => 1);
        $oCab[10] = array("titulo" => "Ciudad Destino", "atributos" => "width:160px", "buscar" => 1);

        $oCab[11] = array("titulo" => "Peso", "atributos" => "width:60px");
        $oCab[12] = array("titulo" => "Base Imponible", "atributos" => "width: 60px");
        $oCab[13] = array("titulo" => "Franqueo", "atributos" => "width: 60px");
        $oCab[14] = array("titulo" => "I.V.A", "atributos" => "width: 60px");
        $oCab[15] = array("titulo" => "Monto Total", "atributos" => "width: 60px");
        $oCab[16] = array("titulo" => "Fecha Envio", "atributos" => "width: 60px", "buscar" => 1);
        $oCab[17] = array("titulo" => "Tipo Servicio", "atributos" => "width: 60px", "buscar" => 1);
        $oCab[18] = array("titulo" => "Tipo Envase", "atributos" => "width: 40px", "buscar" => 1);
        $oCab[19] = array("titulo" => "# Precinto", "atributos" => "width: 40px", "buscar" => 1);
        $oCab[20] = array("titulo" => "# Factura", "atributos" => "width: 40px", "buscar" => 1);
        


        $oCab[21] = array(//
            'titulo' => "#",
            'mantiene' => 1, // Que la fila no se elimine
            'tipo' => 'enlace', //Ruta Imagen
            'parametro' => '5',
            'metodo' => 2,
            'taget' => '_blank',
            'ruta' => IMG . 'aceptar.png',
            'funcion' => 'GUI/Contado',
            "atributos" => "width:20px"
        );

        $oCab[22] = array(//
            'titulo' => '#',
            'mantiene' => 1, // Que la fila no se elimine
            'tipo' => 'bimagen', //Ruta Imagen
            'metodo' => 2,
            'parametro' => '20',
            'ruta' => IMG . 'cancelar.png',
            'funcion' => 'Anular_Envia_Recibe',
            'atributos' => "width:8px"
        );
        $oCab[23] = array("titulo" => "OID_GUIA", "atributos" => "width:60px", "oculto" => 1);


        if (isset($orm)) {
            $fecha = '201';
            $rs = $orm->GPQL('Envia_Recibe')->Donde_Columnas("PAQ_fecha LIKE '%" . $fecha . "%'  GROUP BY PAQ_oid")->Listar_Donde()->Ejecutar();
            foreach ($rs['rs'] as $sC => $sV) {
                $arr = null;
                $arr['GUI_control'] = $sV->PAQ_oidFKG;
                $Guia = $orm->GPQL()->ObtenerID($arr, FALSE, FALSE);
                $guia_con = '';
                if (isset($Guia->control)) {
                    $guia_con = $Guia->control;
                    $guia_oid = $Guia->oid;
                }
                $eti_a =  '';
                    $eti_c = '';
                if($Guia->estatus == 3){
                    $eti_a =   '<font color=red>';
                    $eti_c = '</font>';
                }
                $arr = null;
                $orm->GPQL()->Limpiar_Cache();
                $arr['RES_oid'] = $sV->CER_oidFKR;
                $Recibe = $orm->GPQL()->ObtenerID($arr, FALSE, FALSE);
                $rec_nom = '';
                $rec_rif = '';
                if (isset($Recibe->nombre_razon)) {
                    $rec_nom = $Recibe->nombre_razon;
                    $rec_rif = $Recibe->tipo . '-' . $Recibe->ced_rif;
                }

                // --------------------------------------------------------------------------
                $arr = null;
                $orm->GPQL()->Limpiar_Cache();
                $arr['OFI_oid'] = $sV->PAQ_oidFKO;
                $Oficina = $orm->GPQL()->ObtenerID($arr, FALSE, FALSE);
                $arr = null;
                $orm->GPQL()->Limpiar_Cache();
                $ofi_nom = '';
                $ofi_ciu = '';
                if (isset($Oficina->nombre_razon)) {
                    $ofi_nom = $Oficina->nombre_razon;
                    $ofi_ciu = $Oficina->Ciudad->nomb;
                }

				
                if ($sV->CIU_oid != '') {
                    // --------------------------------------------------------------------------
                    $arr = null;
                    $orm->GPQL()->Limpiar_Cache();
                    $arr['CIU_oid'] = $sV->PAQ_ciudad;
                    $Ciudad = $orm->GPQL()->ObtenerID($arr, FALSE, FALSE);
                    $arr = null;
                    $orm->GPQL()->Limpiar_Cache();
                    $ciu_nom = '';
                    if (isset($Ciudad->nomb)) {
                        $ciu_nom = $Ciudad->nomb;
                    }
                    
                    

                    $oFil[++$i] = array(//
                        '1' => $sV->PAQ_oid,
                        '2' => $sV->CER_oidFKE,
                        '3' => $sV->CER_oidFKR,
                        '4' => $sV->PAQ_oidFKO,
                        '5' => $eti_a . $guia_con . $eti_c,
                        '6' => $sV->RES_nombre_razon . ' ' . $sV->RES_tipo . '-' . $sV->RES_ced_rif ,
                        '7' => $rec_nom . ' ' . $rec_rif,
                        '8' => $ofi_nom,
                        '9' => 'Merida',
                        '10' => $ciu_nom,
                        '11' => $sV->PAQ_peso,
                        '12' => $sV->PAQ_base,
                        '13' => $sV->PAQ_fran,
                        '14' => $sV->PAQ_iva,
                        '15' => $sV->PAQ_monto,
                        '16' => $sV->PAQ_fecha,
                        '17' => $sV->SER_nomb,
                    	'18' => $this->Envase($sV->PAQ_tipo_envase), // Envase
                        '19' => $sV->PAQ_control_presinto, // Precinto
                        '20' => '', // Factura
                        '21' => '',                        
                        '22' => '',
                        '23' => $sV->PAQ_oidFKG
                    );
                }
            }
        }

        $contratos = array("Cabezera" => $oCab, "Cuerpo" => $oFil, "Origen" => "json", "titulo" => "Ventas Diarias");
        return json_encode($contratos);
    }
    function Envase($id){
      switch ($id) {
        case 1:
          $sEnvase = "8";
          break;
       case 2:
          $sEnvase = "8 S.PLUS";
          break;
        case 3:
          $sEnvase = "9";
          break;
        case 4:
          $sEnvase = "11";
          break;
        case 5:
          $sEnvase = "12";
          break;
        case 6:
          $sEnvase = "Otros";
          break;
        default:
          $sEnvase = "Otros";
        break;
      }
              
      return $sEnvase;
    }
    function Posibles_Envios(Orm $orm = null, $arg = array()) {
        $i = 0;
        $oCab = array();
        $oFil = array();
        $oCab[1] = array("titulo" => "oid_respnsable", "atributos" => "width:60px", "oculto" => 1);
        $oCab[2] = array("titulo" => "CED / RIF ", "atributos" => "width:100px");
        $oCab[3] = array("titulo" => "Nombre", "atributos" => "width:200px");
		$oCab[4] = array("titulo" => "Ciudad", "atributos" => "width:200px");

        $oCab[5] = array(//
            "titulo" => "#",
            "mantiene" => 1, // Que la fila no se elimine
            "tipo" => "enlace", //Ruta Imagen
            "metodo" => 1,
            'ruta' => IMG . 'aceptar.png',
            'funcion' => 'Aplicar_Envia_Recibe',
            "atributos" => "width:20px"
        );
        if (isset($orm)) {
            $sConsulta = 'SELECT RES_oid AS oid, RES_ced_rif AS ced_rif,  RES_nombre_razon AS nombre_razon  
            FROM K_TResponsable 
            INNER JOIN K_REnviaRecibe ON RES_oid=CER_oidFKR             
            WHERE 
            CER_oidFKE=\'' . $arg['oid'] . '\';';

            $rs = $orm->GPQL()->Ejecutar($sConsulta);
            if ($rs['err'] == 1) {
                foreach ($rs['rs'] as $sC => $sV) {
                    $oFil[++$i] = array(//
                        '1' => $sV->oid,
                        '2' => $sV->ced_rif,
                        '3' => $sV->nombre_razon,
                        '4' => '',
                        '5' => ''
                    );
                }
                //
            }
        }
        $contratos = array("Cabezera" => $oCab, "Cuerpo" => $oFil, "Origen" => "json", "titulo" => "Lista de Posibles Envios");
        return json_encode($contratos);
    }

}
?>

